In the field of telecommunications, telephone quality services such as the Plain Old Telephone Service (POTS) traditionally has been provisioned over circuit-switched signal transmission infrastructure. There is a current need to provision telephone quality streaming data services over packet-switched data transport infrastructure. There is substantial market pressure towards convergent technologies. Convergent technologies concern the merging of voice, data, and video service provisioning over the same transport infrastructure by integrating telecommunication and computer technologies. Moreover, there is a need to provide high density, implementations supporting an ever increasing number of telecommunication sessions concurrently.
Circuit-switched provisioning and packet-switched provisioning employ different operational principles optimizing different operational parameters. A quality-of-service is defined as a combination of operational parameter values. Circuit-switched provisioning attempts to achieve zero-delay and zero-jitter, while packet-switched provisioning attempts to achieve bandwidth efficiency. The migration from traditional circuit-switched provisioning to packet-switched provisioning is a matter of intense current research and development. Although packet-switched transport adheres to different operational principles from circuit-switched technologies, there is a need to achieve the quality-of-service traditionally provisioned over circuit-switched technologies using packet-switched technologies.
Exemplary implementations of packet-switched telephone service provisioning solutions employ Voice-over-Internet Protocol (VoIP) technologies. VoIP technologies relate to the conveying of VoIP packets in accordance with best-effort service level guarantees. As opposed to circuit-switched technologies, wherein telephone sessions are associated with dedicated end-to-end connections, audio sample groups conveyed by VoIP packets route independently in a packet-switched network. The audio samples form a data stream played back, at a destination end station, using computed playback times referenced to a clock associated with the destination station.
As opposed to traditional telephone service provisioning over dedicated circuits ensuring transmission of voice samples at constant rates, VoIP telephone service provisioning is subject to a best-effort bursty conveyance of VoIP packets. Bursty transmission stems from the fact that each VoIP packet conveys a particular number of voice data samples. Early generated voice data samples accumulate in VoIP packet payloads waiting for later generated voice data samples before transmission.
Other factors related to packet-switched provisioning have to do with packet processing at data transport nodes in packet-switched networks. Packet processing introduces a processing delay in packet transmission. Internet Protocol (IP) data transmission employs store-and-forward techniques whereby packets are stored pending processing. The storage of packets pending processing is subject to queuing techniques, queuing delays, queue service disciplines, etc. all of which introduce variable delays. The combination of these effects is evidenced in a variable packet interarrival time at destination end stations, referred to in the art as jitter.
The above factors have been addressed in connection with telephone service provisioning over packet-switched infrastructure and have been subject to improvement between which:
Co-pending commonly assigned U.S. patent application Ser. No. 10/103,299 entitled “Method of Detecting Drift Between Two Clocks” addresses issues related to dynamic synchronization of source and playback clocks and is incorporated herein by reference. Methods of and apparatus for detecting drift between two clocks were developed. The apparatus comprises a hardware implementation of a clock drift evaluator. The evaluator monitors received packets associated with a data stream, and extracts from each packet a time stamp generated by a source clock. A difference d between the extracted time stamp and the local time is compared against a d_ref value to determine whether the packet was received early or late. On a prescribed schedule, a degree of late or early receipt of packets is compared against a tolerance level to determine whether a relative drift exists between the pacing of the source clock and the pacing of the local clock. The detection of drift between the two clocks provides support for service level guarantees in provisioning data streaming services in packet-switched environments.
Co-pending commonly assigned U.S. patent application Ser. No. 10/139,644 entitled “Time-Indexed Multiplexing as an Efficient Method of Scheduling in Hardware” addresses issues related to hardware process scheduling and is incorporated herein by reference. The presented apparatus includes a table of task lists. Each task list holds specifications of processes requiring handling during a corresponding time interval. Each task list is parsed by a scheduler during a corresponding interval and the processes specified therein are handled. The presented methods of process handling may include a determination of a next time interval in which the process requires handling and inserting of process specifications in task lists corresponding to the determined next handling time. Implementations are also presented in which task lists specify work units requiring handling during corresponding time intervals. The entire processing power of the scheduler is used to schedule processes for handling. Advantages are derived from an efficient use of the processing power of the scheduler as the number of processes is increased in support of high density applications.
Over and above the mentioned improvements, it is necessary to address the facts that best effort IP data transport does not guarantee the transmission of packets, and that a transmitting station may opt to suppress transmission of VoIP packets otherwise conveying voice data samples having a low signal energy. Such silence suppression techniques are beneficial in reducing data transmission bandwidth requirements. Nonetheless, at the receiving end station, non-availability of voice sample data for playback regardless of the reason for non-availability thereof results in silent playback. A reduced apparent quality-of-service is perceived when the audio playback is devoid of sound creating an eerie feeling. Comfort noise insertion techniques must be employed to enhance the perceived quality-of-service.
Having regard to the fact that human speech has an activity factor of about, 0.4, about 60% of voice samples generated in digitizing human speech are silent. A substantial amount of development has been undertaken recently in generating comfort noise patterns—subject matter which is described elsewhere. Largely these recent developments have fallen short of providing suitable methods of inserting comfort noise patterns during playback. Comfort noise insertion at the destination end must take into account: silence suppression instances in the absence of received packets, dropped packet instances evidenced by the absence of received packets, late packet arrivals, etc. Having regard to convergent applications, there is a need to develop apparatus and methods for efficiently inserting comfort noise patterns into multiple voice streams concurrently and independently.
Prior attempts at coordinating timed playback for a large number of VoIP streams scan each stream, for each clock tick of a system clock, to determine whether it is time to play back voice data samples received in a packet associated with the stream or whether to insert comfort noise in the stream playback. For each system clock tick, some streams will have to be attended to and some will not. Every stream needs to be scanned on every clock tick—every 125 μs. Such scanning solutions are unscalable and inadequate for convergent solutions.
There therefore is a need to provide methods and apparatus for comfort noise insertion having regard to the above presented factors.